package ru.kreda.webapp.client.logic;

import com.google.gwt.activity.shared.AbstractActivity;
import com.google.gwt.activity.shared.Activity;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;

/**
 * {@link Activity} для тестовой формы.
 */
public class SampleForm1Activity extends AbstractActivity {

	/**
	 * Интерфейс для взаимодействия с соответствующим view.
	 */
	public interface ISampleForm1Display {
		String getInput();

		void setOutput(String text);

		HasClickHandlers getTestLink();

		Widget asWidget();
	}

	// injected through the constructor
	private final ISampleForm1Display display;

	@Inject
	public SampleForm1Activity(ISampleForm1Display display) {
		this.display = display;
	}

	@Override
	public void start(AcceptsOneWidget container, EventBus eventBus) {
		container.setWidget(display.asWidget());
		display.getTestLink().addClickHandler(new ClickHandler() {
			@Override
			public void onClick(ClickEvent event) {
				String s = display.getInput();
				display.setOutput("copied: " + s);
			}
		});
	}

}
